package com.zdkj.subway.check.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import java.math.BigDecimal;
import java.util.Date;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 2-2-14、售票员票款差异审核 SW_AU_CENTER_CONDUCTOR_AMOUNT_DIFFERENCE
 */
@Data
public class SwAuCenterConductorAmountDifference {

    /**
     * 唯一标识
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    Integer id;
    /**
     * 线路编码
     */
    String lineCode;
    /**
     * 车站编码
     */
    String stationCode;
    /**
     * 收入结算开始日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    Date incomeSettleBeginTime;
    /**
     * 收入结算结束日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    Date incomeSettleEndTime;
    /**
     * 收入结算单ID（关联车站收入结算的ID）
     */
    Integer incomeSettleId;
    /**
     * 收入日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    Date recordTime;
    /**
     * 售票员工号
     */
    String conductorJobNo;
    /**
     * 售票员名称
     */
    String conductorPersonName;
    /**
     * 设备操作号
     */
    String equipmentNumber;
    /**
     * BOM编号
     */
    String bomCode;
    /**
     * 实收金额（车站录入原始数据，不变）
     */
    BigDecimal paidAmount;
    /**
     * 系统数据金额，默认到分
     */
    BigDecimal sysAmount;
    /**
     * 乘客事务金额（分）
     */
    BigDecimal passengerWorkAmount;
    /**
     * 差异金额（分）
     */
    BigDecimal differenceAmount;
    /**
     * 审核日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    Date auditTime;
    /**
     * 核对数据来源
     */
    String sysDataSource;
    /**
     * 数据来源
     */
    String dataSource;
    /**
     * SC充值金额
     */
    BigDecimal scInvestAmount;
    /**
     * SC售票金额
     */
    BigDecimal scSellAmount;
    /**
     * SC补票金额
     */
    BigDecimal scFaretkAmount;
    /**
     * LC充值金额
     */
    BigDecimal lcInvestAmount;
    /**
     * LC售票金额
     */
    BigDecimal lcSellAmount;
    /**
     * LC补票金额
     */
    BigDecimal lcFaretkAmount;
    /**
     * ACC充值金额
     */
    BigDecimal accInvestAmount;
    /**
     * ACC售票金额
     */
    BigDecimal accSellAmount;
    /**
     * ACC补票金额
     */
    BigDecimal accFaretkAmount;
    /**
     * 协查售票员充值金额
     */
    BigDecimal saleoperatorInvestAmount;
    /**
     * 协查售票员售票金额
     */
    BigDecimal saleoperatorSellAmount;
    /**
     * 协查售票员补票金额
     */
    BigDecimal saleoperatorFaretkAmount;
    /**
     * 协查售票员总实收金额
     */
    BigDecimal saleoperatorPaidAmount;
    /**
     * 有无乘客事务
     */
    String isHaveBus;
    /**
     * 是否有营销车票业务
     */
	String isHaveMarket;
    /**
     * 审核状态
     */
    String auditState;
    /**
     * 协查状态
     */
    String assitAuditSate;
    /**
     * 通知状态
     */
    String noticeSate;
    /**
     * 补款状态
     */
    String suppState;
    /**
     * 是否加入层级差异
     */
    String isAddLayerError;
    /**
     * 是否为合并结算后的记录
     */
    String isMergeRecord;
    /**
     * 合并操作员号列表
     */
    String mergeConductorJobNo;
    /**
     * 合并操作员名列表
     */
    String mergeConductorPersonName;
    /**
     * 合并设备号列表
     */
    String mergeEquipmentNumber;
    /**
     * 合并BOM编号列表
     */
    String mergeBomCode;
    /**
     * 是否加入报表差错
     */
    String isAddReprotError;
    /**
     * 是否加入合并通知
     */
    String isAddCombinationNotice;
    /**
     * 替换状态
     */
    String replaceStatus;
    /**
     * 合并结算ID
     */
    Integer combinOrderId;
    /**
     * 合并结算状态
     */
    String combinStatus;
    /**
     * 备注
     */
    String remark;
	 /**
     * 上岗时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime guardTime;
    /**
     * 创建人ID
     */
    Integer creatorId;
    /**
     * 创建人名称
     */
    String creatorName;
    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date createTime;

    BigDecimal marketTicketAmount;

    //2021-01-23优化
    /**
     * 补提交人工号
     */
    String passengerJobNo;
    /**
     * 补提交人名称
     */
    String passengerJobName;
    /**
     * 更新人工号
     */
    String updateJobNo;
    /**
     * 更新人名称
     */
    String updateJobName;
    /**
     * 更新时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date updateTime;

    /**
     * 是否加入协查
     */
    @ApiModelProperty(value = "是否加入协查")
    String isAddAssist;

    //2021-05-08新增 预制单程票现金金额
    BigDecimal singleTicketAmount;
	  //2021-07-29新增 应急纸票现金金额
    BigDecimal emergencyAmount;
    //是否是补提交状态
    String additionalRecordingStatus;
    String delFlag;
    /**
     * 作废状态：0未作废 1已作废
     */
    String invalidStatus;

    //报表修改状态(0:未完成，1:已完成，2:修改中)
    @TableField(exist = false)
    String isModify;

	 //审核人工号
	String auditPersonCode;
	//审核人名称
	String auditPersonName;
    //补提交人工号
    String repairSubmitJobNo;
    //补提交人姓名
    String repairSubmitJobName;
    //补提交时间
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date repairSubmitTime;

    /**
     * 修改原因备注
     */
    String reasonRemark;

	 /**
     * 用于前端传开始结束日期
     */
    @TableField(exist = false)   
    private List<String> dates1;
}
